﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Brainee.Search
{
  /// <summary>
  /// Depth-first search selects the deepest unexpanded node in the search tree for expansion.
  /// </summary>
  /// <remarks>
  /// It is neither complete nor optimal, and has time complexity of O(b^m) and space
  /// complexity of O(bm), where b is the branching factor in the state space and m is the 
  /// maximum depth of any path in the state space.
  /// </remarks>
  public class DepthFirstStrategy : DepthLimitedStrategy
  {
    /// <summary>
    /// Create a new DepthFirstStrategy instance.
    /// </summary>
    public DepthFirstStrategy ()
    {
      Limit = UInt32.MaxValue;
    }
  }
}
